
public class UncaughtExceptionHandlerExample {

    public static void main(String[] args) {
        // 设置未捕获异常处理器
        Thread.setDefaultUncaughtExceptionHandler(new CustomExceptionHandler());

        // 创建一个线程并启动它，该线程会抛出一个未捕获异常
        Thread thread = new Thread(() -> {
            throw new RuntimeException("这是一个未捕获的异常");
        });
        thread.start();
    }

    static class CustomExceptionHandler implements Thread.UncaughtExceptionHandler {
        @Override
        public void uncaughtException(Thread t, Throwable e) {
            System.err.println("线程 " + t.getName() + " 抛出了未捕获的异常: " + e.getMessage());
            // 在这里可以添加自定义处理逻辑，如记录日志、发送通知等
        }
    }
}